﻿// -----------------------------------------------------------------------
// <copyright file="Program.cs" company="Chalmers">
// 
// Copyright (c) 2012 Chalmers University of Technology
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of
// this software and associated documentation files (the "Software"), to deal in 
// the Software without restriction, including without limitation the rights to 
// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
// of the Software, and to permit persons to whom the Software is furnished to do 
// so, subject to the following conditions:

// The above copyright notice and this permission notice shall be included in all 
// copies or substantial portions of the Software.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
// DEALINGS IN THE SOFTWARE.
// </copyright>
// -----------------------------------------------------------------------

using System;
using System.Text.RegularExpressions;
using System.Xml;
using System.Web;
using Chalmers.Summon;

namespace SummonClient
{
    class Program
    {
        // Read the Summon Api ID and Api Key from web.config in section appSettings:
        // <add key="SummonUmbracoApiId" value="MyNiceId" />
        // <add key="SummonUmbracoApiKey" value="abc123" />
        static readonly string ApiId = System.Web.Configuration.WebConfigurationManager.AppSettings["SummonUmbracoApiId"];
        static readonly string ApiKey = System.Web.Configuration.WebConfigurationManager.AppSettings["SummonUmbracoApiKey"];

        static void Main(string[] args)
        {
            Console.WriteLine("XML");

            var summon = new SummonXml(ApiId, ApiKey);
            summon.Debug = true;

            string result = summon.Query("s.q=Magnetic&s.ho=true&s.hl=false");

            var m = Regex.Match(result, @"sessionId=""(.+?)""");
            string sessionId = m.Success ? m.Groups[1].Value : "(not set)";

            var doc = new XmlDocument();
            doc.LoadXml(result);
            XmlNode newNode = doc.DocumentElement;

            Console.WriteLine("Session ID: {0}", sessionId);
            Console.WriteLine(result.Substring(0,1020));
            Console.ReadLine();
        }
    }
}
